package com.stu.day10.singleton;

/**
 * 静态内部类是实现单例模式结合了饿汉式和懒汉式的优点，
 * 延迟加载，只有在访问 getInstance() 时才创建实例。
 * 线程安全，JVM在加载类时会保证实例的创建是线程安全的。
 * 性能较高，因为没有使用同步锁。
 * @author zy
 * @date 2025/2/1 20:48
 */
public class SingletonDemo4 {
    // 静态内部类，只有在需要时才加载
    private static class SingletonHolder {
        private static final SingletonDemo4 INSTANCE = new SingletonDemo4();
    }

    // 私有构造函数，防止外部创建多个实例
    private SingletonDemo4() {}

    // 提供公共的静态方法访问实例
    public static SingletonDemo4 getInstance() {
        return SingletonHolder.INSTANCE;
    }
    public void doSomething() {
        System.out.println("Singleton do something");
    }
}
class TestDemo4{
    public static void main(String[] args) {
        SingletonDemo4 sl4 = SingletonDemo4.getInstance();
        sl4.doSomething();
    }
}
